# -*- coding: utf-8 -*-


from PyQt5.QtWidgets import QApplication, QLabel, QWidget, QVBoxLayout
from PyQt5.QtCore import Qt
from PyQt5.QtGui import QPixmap, QPalette
import sys

class Qwin(QWidget):
    def __init__(self,parent=None):
        super(Qwin, self).__init__(parent)
        label1 = QLabel(self)
        label2 = QLabel(self)
        label3 = QLabel(self)
        label4 = QLabel(self)

        # 初始化控件，并设置文本内容
        label1.setText("这是一个文本标签")
        # 标签1的背景填充更改为True，否则无法显示背景
        label1.setAutoFillBackground(True)
        palette = QPalette()
        palette.setColor(QPalette.Window,Qt.blue)
        label1.setPalette(palette)
        # 设置对齐方式
        label1.setAlignment(Qt.AlignCenter)

        label2.setText("<a href='http://www.baidu.com'>点击我试试</a>")

        label3.setAlignment(Qt.AlignCenter)
        label3.setToolTip("这是图片")
        # QPixmap设置一张图片
        label3.setPixmap(QPixmap("冷血帅气男动.jpg"))

        label4.setText("<a href='https://blog.csdn.net/weixin_52040868'>欢迎访问博客</a>")
        label4.setAlignment(Qt.AlignRight)
        label4.setToolTip("这是个超链接标签")

        # 窗口布局中添加插件
        box = QVBoxLayout()
        # 添加标签到垂直布局中
        box.addWidget(label1)
        # 窗口拉伸
        box.addStretch()

        box.addWidget(label2)
        box.addStretch()

        box.addWidget(label3)
        box.addStretch()

        box.addWidget(label4)
        box.addStretch()

        # 允许label1控件访问超链接
        label1.setOpenExternalLinks(True)
        label2.setOpenExternalLinks(True)
        # 默认False
        label4.setOpenExternalLinks(False)
        # 点击文本框绑定槽事件
        label4.linkActivated.connect(link_click)
        # 滑过文本绑定槽事件
        label2.linkHovered.connect(link_hovere)
        label1.setTextInteractionFlags(Qt.TextSelectableByMouse)

        self.setLayout(box)
        self.setWindowTitle("QLabel例子")

def link_click():
    print("鼠标点击label2，触发")

def link_hovere():
    print("鼠标点击label4，触发")


if __name__ == '__main__':
    app = QApplication(sys.argv)
    lab = Qwin()
    lab.show()
    sys.exit(app.exec_())